package com.caishi.lkx.user.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.caishi.lkx.user.dto.IndexMemberSearchVo;
import com.caishi.lkx.user.model.MemberModel;
import com.zzw.common.entity.IBaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * @author by keray
 * date:2021/4/7 11:04 上午
 */
public interface MemberMapper extends IBaseMapper<MemberModel, String> {
    @Select("select cu.id from cu_member cm left join cu_user_base cu on cm.id = cu.id where cm.stu_no = #{stuNo}")
    String studentIdByNo( @Param("stuNo") String stuNo);

    /**
     * <p>
     * <h3>作者 keray</h3>
     * <h3>时间： 2019/10/23 17:45</h3>
     * 查询基础用户
     * </p>
     *
     * @param offset
     * @param size
     * @param param  name
     *               mobile
     *               keyword 搜索关键字
     *               channelType 渠道类型
     *               channelPointer 渠道指向
     *               owner 是否自营用户 true 自营
     *               groupId 机构id
     * @return <p> {@link List < UserModel>} </p>
     * @throws
     */
    List<MemberModel> searchUser(@Param("offset") Long offset, @Param("size") Long size, @Param("param") Map<String, Object> param,
                                    @Param("asc") List<String> asc,
                                    @Param("desc") List<String> desc);

    /**
     * <p>
     * <h3>作者 keray</h3>
     * <h3>时间： 2019/10/23 18:13</h3>
     * 查询基础用户 total
     * </p>
     *
     * @param param
     * @return <p> {@link long} </p>
     * @throws
     */
    long searchUserCount(@Param("param") Map<String, Object> param);

    /**前台机构用户管理
     * @param page 分页
     * @param searchVo 查询条件
     * @return
     */
    IPage<IndexMemberSearchVo> searchIndex(Page<IndexMemberSearchVo> page, @Param("searchVo") Map<String, Object> searchVo);

    List<Map> countLine(@Param("param") Map<String, Object> param);
}
